Voltage scaling in integrated circuits (ICs) can be used to control power consumption. For example, the design for an application specific integrated circuit (ASIC) can be specified having a plurality of different power domains. Different blocks or subsystems can be designed for operation using different voltages. Level-shifters can be used at the interfaces between blocks/subsystems operating in different power domains. Since ASICs use structured floorplanning, level-shifters can access the source and destination voltages at the planned interfaces.
Programmable integrated circuits (ICs) are often used to implement digital logic operations according to user configurable input. Example programmable ICs include complex programmable logic devices (CPLDs) and field programmable gate arrays (FPGAs). One type of FPGA includes an array of programmable tiles. The programmable tiles have interfaces to adjacent tiles, as well as with non-adjacent tiles. The far-reaching signal boundaries of programmable tiles in a programmable IC, such as an FPGA, add complexity to any voltage scaling implementation. Specifically, the techniques used for ASICs cannot be applied to programmable ICs.